<?php

namespace app\task\cron;

use yunwuxin\cron\Task;
use app\common\model\FinanceStat as FinanceStatModel;

/**
 * 系统财务统计.
 */
class FinanceStat extends Task
{
    /**
     * 5分钟执行1次
     */
    protected function configure()
    {
        // 分 时 日 月 周
        $this->expression = '*/1 * * * *';
//        $this->expression = '*/5 * * * *';
    }

    protected function handle()
    {
        echo '财务统计开始--' . date('Y-m-d H:i:s') . PHP_EOL;
        $lockKey = 'finance_stat_lock_key';
        $lockVal = cache($lockKey);
        if ($lockVal) {
            echo '还在处理呢' . PHP_EOL;

            return true;
        }

        cache($lockKey, 1, 500);

        FinanceStatModel::runStat();

        cache($lockKey, null);

        echo '财务统计结束--' . date('Y-m-d H:i:s') . PHP_EOL;
    }
}
